home *** CD-ROM | disk | FTP | other *** search
/ Scene 96 / Scene 96 International Edition (Zyklop Software) (Disc 2) (1997).iso / misc / coding / cp2dekit / h / dpmi.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-12-29  |  2.9 KB  |  109 lines

  1. //***************************************************************************
  2. //
  3. // this file is (c) '94-'96 Niklas Beisert
  4. //
  5. // this file is part of the cubic player development kit.
  6. // you may only use/modify/spread this file under the terms stated
  7. // in the cubic player development kit accompanying documentation.
  8. //
  9. //***************************************************************************
  10.  
  11. #ifndef __DPMI_H
  12. #define __DPMI_H
  13.  
  14. struct callrmstruct;
  15.  
  16. void *dosmalloc(unsigned long len, void __far16 *&rmptr, __segment &pmsel);
  17. void dosfree(__segment pmsel);
  18. __segment getselectors(void *base, unsigned long len, unsigned short n);
  19. void freeselectors(__segment sel, unsigned short n);
  20.  
  21. void __far *getvect(unsigned char intno);
  22. void setvect(unsigned char intno, void __far *vect);
  23. void __far16 *getrmvect(unsigned char intno);
  24. void setrmvect(unsigned char intno, void __far16 *vect);
  25. void __far *getpmvect(unsigned char intno);
  26. void setpmvect(unsigned char intno, void __far *vect);
  27. void __far *getexvect(unsigned char intno);
  28. void setexvect(unsigned char intno, void __far *vect);
  29. void *getphysicalmapping(unsigned long addr, unsigned long size);
  30. void freephysicalmapping(void *p);
  31. void intrrm(unsigned char intno, callrmstruct ®s);
  32. void callrm(void __far16 *fn, callrmstruct ®s);
  33. void callrmiret(void __far16 *fn, callrmstruct ®s);
  34. void clearcallrm(callrmstruct &r);
  35.  
  36. struct callrmstruct
  37. {
  38. union
  39. {
  40.   struct
  41.   {
  42.     unsigned long edi;
  43.     unsigned long esi;
  44.     unsigned long ebp;
  45.     unsigned long esp;
  46.     unsigned long ebx;
  47.     unsigned long edx;
  48.     unsigned long ecx;
  49.     unsigned long eax;
  50.   } x;
  51.   struct
  52.   {
  53.     unsigned long edi;
  54.     unsigned long esi;
  55.     unsigned long ebp;
  56.     unsigned long esp;
  57.     unsigned long ebx;
  58.     unsigned long edx;
  59.     unsigned long ecx;
  60.     unsigned long eax;
  61.   } d;
  62.   struct
  63.   {
  64.     unsigned short di; unsigned short _1;
  65.     unsigned short si; unsigned short _2;
  66.     unsigned short bp; unsigned short _3;
  67.     unsigned short sp; unsigned short _4;
  68.     unsigned short bx; unsigned short _5;
  69.     unsigned short dx; unsigned short _6;
  70.     unsigned short cx; unsigned short _7;
  71.     unsigned short ax; unsigned short _8;
  72.   } w;
  73.   struct
  74.   {
  75.     unsigned long _1;
  76.     unsigned long _2;
  77.     unsigned long _3;
  78.     unsigned long _4;
  79.     unsigned char bl,bh; unsigned short _5;
  80.     unsigned char dl,dh; unsigned short _6;
  81.     unsigned char cl,ch; unsigned short _7;
  82.     unsigned char al,ah; unsigned short _8;
  83.   } b;
  84.   struct
  85.   {
  86.     unsigned long _1;
  87.     unsigned long _2;
  88.     unsigned long _3;
  89.     unsigned long _4;
  90.     unsigned long _5;
  91.     unsigned long _6;
  92.     unsigned long _7;
  93.     unsigned long _8;
  94.     unsigned short flags;
  95.     unsigned short es;
  96.     unsigned short ds;
  97.     unsigned short fs;
  98.     unsigned short gs;
  99.     unsigned short ip;
  100.     unsigned short cs;
  101.     unsigned short sp;
  102.     unsigned short ss;
  103.   } s;
  104. };
  105. };
  106.  
  107.  
  108. #endif
  109.